<?php
	/**
	 * @author NHN (developers@xpressengine.com)
	 * @package /classes/db/queryparts
	 * @version 0.1
	 */
	class Subquery extends Query {
		/**
		 * table alias
		 * @var string
		 */
		var $alias;
		/**
		 * join type
		 * @var string
		 */
		var $join_type;

		/**
		 * constructor
		 * @param string $alias
		 * @param string|array $columns
		 * @param string|array $tables
		 * @param string|array $conditions
		 * @param string|array $groups
		 * @param string|array $orderby
		 * @param int $limit
		 * @param string $join_type
		 * @return void
		 */
		function Subquery($alias, $columns, $tables, $conditions, $groups, $orderby, $limit, $join_type = null){
			$this->alias = $alias;

			$this->queryID = null;
			$this->action = "select";

			$this->columns = $columns;
			$this->tables = $tables;
			$this->conditions = $conditions;
			$this->groups = $groups;
			$this->orderby = $orderby;
			$this->limit = $limit;
                        $this->join_type = $join_type;
		}

		function getAlias(){
			return $this->alias;
		}

                function isJoinTable(){
                    if($this->join_type) return true;
                    return false;
                }

                function toString($with_values = true){
                    $oDB = &DB::getInstance();

                    return '(' .$oDB->getSelectSql($this, $with_values) . ')';

                }

                function isSubquery(){
                    return true;
                }
	}
